package Modelo;

import java.util.ArrayList;

import ElementosLogicos.Estado;
import ElementosLogicos.Transicao;

public class AutomatoFinito extends Modelo {

	private ArrayList<Estado> estados;
	private ArrayList<Transicao> transicoes = new ArrayList<Transicao>();

	public AutomatoFinito(String alfa){
		alfabeto = alfa;
		estados = new ArrayList<Estado>();
		id = this.geraID();
	}
	
	public Estado geraEstado(String nome){
		return new Estado(nome);
	}
	
	public void addEstado(Estado e) {
		estados.add(e);
	}

	public String getAlfabeto() {
		return alfabeto;
	}
	
	public ArrayList<Estado> getEstados() {
		return estados;
	}
	
	public int numEstados() {
		return estados.size();
	}
	
	public ArrayList<Estado> estadosFinais(){
		ArrayList<Estado> finais = new ArrayList<Estado>();
		for(Estado e: estados)
			if(e.getFinal())
				finais.add(e);
		return finais;
	}
	
	public String toString() {
		String msg = "";
		for (int i = 0; i < estados.size(); i++) {
			Estado e = estados.get(i);
			msg+= e.toString();
		}
		return msg;
	}
}
